package com.jj.util;

import org.apache.log4j.Logger;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.Part;
import java.io.File;
import java.io.IOException;
import java.util.UUID;

/**
 * @author CC
 * @version 1.0
 * @description: 文件上传工具类（支持自定义存储目录）
 * @date 2025/4/21 14:54
 */
public class FileUtil {
    private static final Logger logger = Logger.getLogger(FileUtil.class);

    // 自定义存储目录（独立于Tomcat）
    private static final String UPLOAD_DIR = "D:/emp_uploads/";

    // 虚拟访问路径（通过Servlet代理）
    private static final String VIRTUAL_PATH = "/fileProxy";

    public static String getImgUrl(HttpServletRequest request, Part part) {
        try {
            String fileName = part.getSubmittedFileName();
            if (fileName == null || fileName.isEmpty()) {
                return "img/default.jpg"; // 保持与原逻辑一致
            }

            // 生成唯一文件名
            String fileExt = fileName.substring(fileName.lastIndexOf("."));
            String uniqueName = UUID.randomUUID() + fileExt;

            // 保存到独立目录
            File dir = new File(UPLOAD_DIR);
            if (!dir.exists()) dir.mkdirs();
            part.write(UPLOAD_DIR + uniqueName);

            // 返回Servlet代理路径（如 "/fileProxy?file=abc123.jpg"）
            return VIRTUAL_PATH + "?file=" + uniqueName;
        } catch (IOException e) {
            logger.error("上传失败", e);
            return "img/default.jpg";
        }
    }
}